/**
 * 该文件是整个项目的入口文件
 */
// 引入Vue
/**
 * 默认引入的是 "module": "dist/vue.runtime.esm.js"（package.json查看）
 *  node_modules下vue/dist/vue.runtime.esm.js
 * 
 */
import Vue from 'vue'
// 引入App组件，它是所有组件的父组件
import App from './App.vue'
import {hunhe,hunhe2} from './mixin'
// 关闭vue的生产提示
Vue.config.productionTip = false
// 全局混合，所有的vue实例对象都会被用到
Vue.mixin(hunhe)
Vue.mixin(hunhe2)


/*
  关于不同版本的Vue：

    1.vue.js和vue.runtime.xxx.js的区别：
      （1）vue.js是完整版的vue，包含：核心功能+模板解析器
      （2）vue.runtime.xxx.js是运行版的Vue，只包含：核心功能：没有模板解析器

    2.因为vue.runtime.xxx.js没有模板解析器，所有不能使用template配置项，需要使用
      render函数接收到createElement函数去指定具体内容

    为什么要整这么个只有核心功能的vue.js
      举例：装修--铺瓷砖
        第一种：买瓷砖（Vue核心） + 买工人（模板解析器） ====> 铺好的瓷砖+工人

        第二种：买瓷砖（Vue核心） + 雇工人（模板解析器） ====> 铺好的瓷砖

 */


// 创建Vue实例对象---vm
new Vue({
  el: '#app',// 相当于.$mount('#app')
  // 将App组件放入容器中
  render: h => h(App),

  /**
   * 以下函数可以简写成
   * render:q=>q('h1','hello')
   */
  /* render(createElement){
    // 相当于创建了<h1>hello</h1>
    return createElement('h1','hello');
  } */
  
  // import Vue from 'vue/dist/vue.js'（用完整版的vue.js才能使用以下两行代码）
  // template: `<App></App>`,
  // components: {App}
})
//.$mount('#app')
